package com.inviteOrder.strategy;

import com.inviteOrder.domain.Reward;
import com.inviteOrder.domain.RewardEnum;

import java.math.BigDecimal;

/**
 * 根据老用户的用户属性来计算返奖金额。为了评估不同的邀新效果，老用户返奖会存在多种返奖机制。 <br>
 * TODO: 这里为了简单,就返回一个固定值,因为存在多种返奖机制,实际开发时,可采用策略模式或者过滤器链来进行处理
 * @author 大忽悠
 * @create 2022/10/17 10:38
 */
public class OldUserRewardStrategy implements RewardStrategy{
    /**
     * 针对老用户的返奖策略
     *
     * @param uid 用户id
     * @return 返回返奖金额
     */
    @Override
    public Reward reward(Long uid) {
        return Reward.builder().type(RewardEnum.ConsumeVolumes)
                .id(System.currentTimeMillis())
                .amount(BigDecimal.valueOf(30))
                .build();
    }
}
